//隐式绑定：函数的调用是由一个对象发起的
//当前的this由javaScript内部将this绑定到调用的对象身上

function foo() {
  console.log(this);
}

var obj = {
  name: 'why',
  test: foo,
};

obj.test();
//为什么？因为是obj发起的这个函数的调用

var obj2 = {
  name: 'scott',
  obj: obj,
  demo: obj.test,
};
obj2.obj.test();
//最终函数的发起者

obj2.demo();
//看清是谁发起的

var bar = obj2.demo;
bar();
